package com.wei.czz.framework.admin.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wei.czz.common.vo.admin.deptUser.DeptUserFormVo;
import com.wei.czz.common.vo.admin.userRole.UserRoleFormVo;
import com.wei.czz.common.vo.admin.userRoleGroup.UserRoleGroupFormVo;
import com.wei.czz.framework.admin.entity.UserEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-03-15 10:30:44
 * className: UserDao 用户操作请求数据库交互接口
 * version: 1.0
 * description:
 */
public interface UserDao extends BaseMapper<UserEntity> {

    /**
     * 获取用户主键列表
     * @param deleteStatus 删除状态
     * @return 用户主键列表
     */
    List<String> getUserIdList(@Param("deleteStatus") Integer deleteStatus);

    /**
     * 分页查询用户
     * @param page   mp分页对象
     * @param formVo 参数对象
     * @return 分页查询结果
     */
    Page<UserEntity> selectPageList(Page<UserEntity> page, @Param("formVo") DeptUserFormVo formVo);

    /**
     * 分页查询角色授权组关联用户
     * @param page   mp分页对象
     * @param formVo 参数对象
     * @return 分页查询结果
     */
    Page<UserEntity> selectUserRoleGroupPageList(Page<UserEntity> page, @Param("formVo") UserRoleGroupFormVo formVo);

    /**
     * 分页查询角色关联用户
     * @param page   mp分页杜祥
     * @param formVo 参数对象
     * @return 分页查询结果
     */
    Page<UserEntity> selectRoleUserPageList(Page<UserEntity> page, @Param("formVo") UserRoleFormVo formVo);
}
